// 两个超限的数字相加
function add(a, b) {
  // 超限的数字 已经不能使用数字类型来表示了 所以需要用字符串来表示
  if (typeof a !== 'string' || typeof b !== 'string') {
    throw new Error('参数必须是字符串')
  }
  // 手动相加 使用竖式相加的方式
    let maxLength = Math.max(a.length, b.length)
    // 用0去补齐长度
    a = a.padStart(maxLength, 0)
    b = b.padStart(maxLength, 0)
    // 定义加法过程中需要用到的变量
    let t = 0
    let f = 0 // 进位
    let sum = ''
    for (let i = maxLength - 1; i >= 0; i--) {
      t = parseInt(a[i]) + parseInt(b[i]) + f
      f = Math.floor(t / 10)
      sum = t % 10 + sum
    }
    if (f === 1) {
      sum = '1' + sum
    }
    return sum
}